#if !defined(AFX_MEGADIALOG_H__D5702A96_53F9_4C82_840F_435C0C479787__INCLUDED_)
#define AFX_MEGADIALOG_H__D5702A96_53F9_4C82_840F_435C0C479787__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// MegaDialog.h : header file
//
#include "MegaButton.h"
#include <vector>

/////////////////////////////////////////////////////////////////////////////
// CMegaDialog dialog

class CMegaBitmap;
class CMegaDrawer;

class CMegaDialog : public CDialog
{
// Construction
public:
	CMegaDialog(UINT id, CWnd* pParent = NULL, UINT uiSkinSingle = 0, UINT uiSkinDouble = 0);   // mega-constructor :)))

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CMegaDialog)
	protected:
	virtual BOOL CMegaDialog::OnInitDialog();
	//}}AFX_VIRTUAL

// properties
protected:
	// skins
	CMegaBitmap *m_pBackgroundBmp;
	CMegaBitmap *m_pSkinSingle, *m_pSkinDouble;
	// window region
	HRGN m_hrgnBase, m_hrgnBaseDouble;

	// min/max/close buttons
	CMegaButton m_MinBtn, m_MaxBtn, m_CloseBtn;

	// drawers
	std::vector<CMegaDrawer*> m_Drawers;

	long m_nSize;
	long m_nSizeCopy;

// Implementation
protected:
	virtual ~CMegaDialog();

	virtual void AdjustRegion();


	// Generated message map functions
	//{{AFX_MSG(CMegaDialog)
	virtual void OnOK();
	virtual void OnCancel();
	afx_msg void OnMinimize();
	afx_msg void OnMaximize();
	afx_msg void OnClose();
	afx_msg LRESULT OnNcHitTest(CPoint point);
	afx_msg LRESULT OnDrawerActivation(WPARAM wParam, LPARAM lParam);
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_MEGADIALOG_H__D5702A96_53F9_4C82_840F_435C0C479787__INCLUDED_)
